Skip to content

Draft: Compose/KMP migration checkpoint, not merge-ready#358

Draft
rosuH wants to merge 400 commits into
masterfrom
feat/migrate_to_compose
Draft

Draft: Compose/KMP migration checkpoint, not merge-ready#358
rosuH wants to merge 400 commits into
masterfrom
feat/migrate_to_compose

Conversation

@rosuH

@rosuH rosuH commented Aug 30, 2025

Copy link
Copy Markdown
Owner

Summary

This is a large feat/migrate_to_compose integration checkpoint. It is not merge-ready and should stay Draft until production-vs-branch 1:1 parity gaps are closed.

  • Advances the Compose/KMP migration through the accepted S4d slices: shared renderer primitives, desktop/iOS renderer boundaries, iosApp bring-up, and the iOS UI-test fixture proof.
  • Cleans the Android surface: removes dead View/widget/helper code, drops Glide remnants, migrates model URI state to MediaRef, removes the dead ImageInfo.shareUri, and removes stale KEY_URI / SP_KEY_URI.
  • Adds the dynamic-color capability seam so migrated Compose consumers no longer call CMonet directly.
  • Keeps the accepted boundaries explicit: Android text/icon/composition production stays native; Desktop/iOS use the shared renderer path; real PHPicker grid-cell selection remains bypassed by the debug UI-test fixture.
  • Updates durable docs for the accepted architecture and verification state.

Verification

  • git diff --check
  • plutil -lint iosApp/iosApp.xcodeproj/project.pbxproj
  • xcodebuild -list -project iosApp/iosApp.xcodeproj
  • ./gradlew :app:compileDebugKotlin :shared:compileKotlinDesktop :shared:compileKotlinIosSimulatorArm64 --max-workers=8 --console=plain
  • ./gradlew :app:testDebugUnitTest :shared:desktopTest :shared:iosSimulatorArm64Test :app:assembleDebug :app:assembleRelease --max-workers=8 --console=plain
  • ./gradlew --stop --max-workers=8 --console=plain

Known Limits

  • The iOS UI proof uses the DEBUG / UI-test-only -uiTestFixtureImage lane through the real WatermarkWorkflow and IosWatermarkRenderBridge; real PHPicker grid-cell automation remains unproven on this simulator/Xcode lane.
  • No Android device or real iOS device gate was rerun during PR creation.
  • This PR is intentionally Draft. It is a review/checkpoint surface, not a merge candidate.
  • Production-vs-branch 1:1 parity still has known gaps and needs a dedicated parity-closing pass before merge review.

@rosuH rosuH closed this Aug 30, 2025
@rosuH rosuH reopened this Jun 26, 2026
@rosuH rosuH changed the title Feat/migrate to compose Advance Compose/KMP migration checkpoint Jun 26, 2026
@rosuH rosuH marked this pull request as draft June 26, 2026 16:24
@rosuH rosuH changed the title Advance Compose/KMP migration checkpoint Draft: Compose/KMP migration checkpoint, not merge-ready Jun 26, 2026
rosuH added 30 commits July 12, 2026 11:07
S4d-383 / A5a: one IosEditorScreenHost + EditorScreenShell(showPhotoStrip=false),
Swift edges for pickers/Templates/share/save, DEBUG-only witness route, and
XCUITest contracts (19/0). Ticket 01 accepted with gates under
build/s4d383-a5a-final/.
Ticket 04 publishes the Desktop editor-window-only exception matrix.
Tickets 02 and 03 document PhotosPicker-only and no-About Phase A
exceptions pending owner sign-off before A5 closeout.
Tickets 02 and 03: PhotosPicker-only gallery edge and no About on
iOS Phase A, approved by owner. Unblocks A5 closeout aggregation.
Aggregate tickets 01–04 (shipped iOS editor + owner-signed gallery/About
exceptions + Desktop editor-window registry). Closeout gates green under
build/s4d383-a5-closeout/; ticket 06 is unblocked. Not §9 DoD or Phase B.
B0 (ticket 06): docs/parity archive layout, screen×state inventory, and
production-vs-debug capture protocol. Ready for tickets 07/08 sign-off work.
No owner parity claims and no Phase B UI polish.
B1/B2 first pass on emulator-5554: launch, gallery/picker, editor, and
export pairs under docs/parity. Grok-viewed comparison recorded; no owner
sign-off claimed. Gallery path mismatch and editor/export deltas listed.
Narrow gitignore so Android Studio /captures stays ignored while
Phase B docs/parity/**/captures evidence can be committed. Add en/dark
production and debug pairs plus Grok comparison notes.
Owner: Android prefers in-app gallery with system Photo Picker via top-right;
iOS/Desktop keep system pick. Strengthen .gitignore so docs/parity captures
stay tracked; document policy and update B1 punch-list.
Debug pm-clear re-capture: in-app gallery primary, top-right system
Photo Picker secondary, clean editor/export with default watermark text.
Document remaining chrome punch-list; no owner sign-off.
Local en/dark production vs debug table with sticky nav and lightbox
for Phase B screenshot review.
Use toolbar logo leading, unclip Content text as a live TextField, highlight
selected option chips, and enlarge the photo strip. iOS keeps the Confirm
sheet path for XCUITest. Capture editor-after-p0-fix for review.
Ticket 08 status and side-by-side board now point at editor-after-p0-fix.
Owner UX: tap Text opens a modal to edit watermark text; template entry
sits top-end of the sheet. Carousel openSignal reopens on re-tap. Capture
editor-text-sheet-open for review.
Wrap-height save sheet so the editor peeks above; continuous quality
slider with 20-step snap on release; compact preview so the export CTA
stays visible. Capture export-after-p1-fix for review.
Compute LazyRow side padding from row width so single (and short)
export previews sit in the middle of the bordered preview box.
Ticket 08 complete after owner confirmed editor sheet, export sheet, and
centered export-list preview. Non-blocking residuals noted.
Ticket 07 complete (launch + gallery). Tickets 07 and 08 both signed;
ticket 09 iOS/Desktop alignment is unblocked.
Publish the signed-Android baseline exception table (E01–E16), verify
shared iOS-sim compile, desktopTest 132/0, and desktop headless save
flow. Unblocks ticket 10 DoD audit. No CJK byte-parity or PHPicker
grid re-proof claims.
Honest checklist: overall §9 NOT MET; app/shared/desktop gates and
createDistributable green. Owner-facing options A/B/C with no auto-merge.
Refresh codex-goal-v2 current-truth; close local ticket 10.
Re-ran iosSimulatorArm64Test (101/0) and strict watermark goldens
(53/0, strict=true); refresh audit, graduation proposal, and process truth.
Keep Draft; no push or merge. Document next polish residual.
Replace the MotionLayout debug WIP (huge green oval) with a horizontal
preset row and restore skydoves ColorPickerDialog for custom colors.
Owner chose multiplatform ViewModel with ports and product UI on
Compose Multiplatform; SwiftUI remains system-edge only.
Add multiplatform lifecycle-viewmodel to :shared, empty
WatermarkSessionViewModel, and skill/performance migration gates.
Add AppIntent/SessionReducer, extend MainViewModel from
WatermarkSessionViewModel, map Action to intents. Export stays Android.
Install the full Android CLI skill pack under project `.claude/skills`
and `skills/` (claude-code + openclaw), refreshing the existing adaptive,
navigation-3, and XML-to-Compose skills so agents share the same local set.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant